package com.shuaigef.springbootinit.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shuaigef.springbootinit.common.BaseResponse;
import com.shuaigef.springbootinit.model.dto.classroom.ClassroomAddRequest;
import com.shuaigef.springbootinit.model.dto.classroom.ClassroomQueryRequest;
import com.shuaigef.springbootinit.model.entity.Classroom;

import java.util.List;

/**
 * 班级服务
 */
public interface ClassroomService extends IService<Classroom> {
    
    /**
     * 获取当前登录学生所在的班级列表
     * @return 班级列表
     */
    List<Classroom> getLoginStudentClassrooms();

    /**
     * 获取当前登录教师管理的班级列表
     * @return 班级列表
     */
    List<Classroom> getLoginTeacherClassrooms();

    /**
     * 根据条件查询班级
     * @param classroomQueryRequest 查询条件
     * @return 班级列表
     */
    List<Classroom> queryClassrooms(ClassroomQueryRequest classroomQueryRequest);

    /**
     * 根据ID获取班级信息
     * @param id 班级ID
     * @return 班级信息
     */
    Classroom getClassroomById(Integer id);

    /**
     * 获取学生所在的班级列表（内部使用）
     * @param userId 学生ID
     * @return 班级列表
     */
    List<Classroom> getUserClassrooms(Integer userId);

    /**
     * 新建班级
     * @param classroomAddRequest 新建班级请求
     * @return 新建的班级ID
     */
    BaseResponse<Void> createClassroom(ClassroomAddRequest classroomAddRequest);
}
